﻿' TestModul.vb
' This is a modul to test all functions of the class HtmlWriter.
' The class HtmlWriter is a class of a htwg-konstanz teamproject
'
' Date:         30/12/2011
' Last edit:    16/06/2012
' author:       Stephan Weidele
' 

Imports System
Imports System.IO
Imports System.Text


Module TestModul

    Sub Main()

        ' Standart ausgabe Pfad. Wenn anderer Pfad ausgewählt werden soll muss 2. Parameter geändert werden.
        Dim testObject As HtmlWriter = New HtmlWriter("TestModulBook", "D:\")

        Dim testModulPath As String = Windows.Forms.Application.StartupPath() + "\..\..\"

        ' Erzeugen eines Inhaltsverzeichnisses
        ' Erzeugen verschiedener Seiten und Kapiteln
        testObject.writeTitle("Einleitung", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("In diesem Buch werden verschiedene Tests durchgefuehrt.", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Dieser Text sollte im Ersten Kapitel stehen.", 4, "#000000", "test", False, False, False)

        testObject.nextPage()


        ' Eine Tab muss gemacht werden
        testObject.writeTitle("Absatz/Tab", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("In der naechsten Zeile soll ein Absatz/Tab angezeigt werden.", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()

        testObject.nextPage()


        ' Eine Zeile muss Frei beiben
        testObject.writeTitle("Leere Zeile", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Nun soll eine leere Zeile geschrieben werden", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeBlankLine()
        testObject.writeText("Leere Zeile sollte drueber sein", 4, "#000000", "test", False, False, False)

        testObject.nextPage()


        ' Verschiedene Schriftgroessen müssen gemacht werden
        testObject.writeTitle("Schriftgroesse", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier werden die verschiedenen Schriftgroessen getestet", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()

        testObject.writeText("1", 1, "#000000", "test", False, False, False)
        testObject.writeText("2", 2, "#000000", "test", False, False, False)
        testObject.writeText("3", 3, "#000000", "test", False, False, False)
        testObject.writeText("4", 4, "#000000", "test", False, False, False)
        testObject.writeText("5", 5, "#000000", "test", False, False, False)
        testObject.writeText("6", 6, "#000000", "test", False, False, False)
        testObject.writeText("7", 7, "#000000", "test", False, False, False)

        testObject.nextPage()


        ' verschiedene Schriftarten müssen getestet werden
        testObject.writeTitle("Schriftart", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("nicht gefundenene schriftart", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Arial", 4, "#000000", "Arial", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Comic Sans", 4, "#000000", "Comic Sans", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Georgia", 4, "#000000", "Georgia", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Roman", 4, "#000000", "Roman", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Times New Roman", 4, "#000000", "Times New Roman", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Verdana", 4, "#000000", "Verdana", False, False, False)
        testObject.writeBlankLine()

        testObject.nextPage()


        ' Bilder müssen in verschiedenen größen angeigt werden
        testObject.writeTitle("Bildgroessen", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier sollen Bilder in verschiedenen groessen sein.", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()

        testObject.setImageWithText(testModulPath + "images\1.jpg", 100, 100, "left", 5, 5)
        testObject.setImageWithText(testModulPath + "images\2.jpg", 75, 75, "left", 5, 5)
        testObject.setImageWithText(testModulPath + "images\3.jpg", 50, 50, "left", 5, 5)
        testObject.setImageWithText(testModulPath + "images\4.jpg", 25, 25, "left", 5, 5)

        testObject.nextPage()

        ' Bilder müssen an erschiedenen Positionen angeigt werden
        testObject.writeTitle("Bildpositionen", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier sollen Bilder an versiedenen Positionen sein.", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()

        testObject.setImage(testModulPath + "images\1.jpg", 100, 100, 100, 0)
        testObject.setImage(testModulPath + "images\2.jpg", 100, 100, 100, 300)
        testObject.setImage(testModulPath + "images\3.jpg", 100, 100, 400, 0)
        testObject.setImage(testModulPath + "images\4.jpg", 100, 100, 400, 300)

        testObject.nextPage()


        ' Bilder und Text werden nicht überlagert
        testObject.writeTitle("Bilder und Texte", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier sollen Bilder und Texte richtig angezeigt werden", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()

        testObject.setImageWithText(testModulPath + "images\1.jpg", 100, 100, "right", 5, 5)
        testObject.writeText("Dieser Text sollte auf der linken Seite des Bildes angezeigt werden.", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Der Text wird nicht durch das Bild überschrieben.", 4, "#000000", "test", False, False, False)

        testObject.writeBlankLine()

        testObject.setImageWithText(testModulPath + "images\2.jpg", 100, 100, "left", 5, 5)
        testObject.writeText("Dieser Text sollte auf der rechten Seiten des Bildes angezeigt werden.", 4, "#000000", "test", False, False, False)
        'meinBuch.writeLineBrake()
        testObject.writeText("Der Text wird nicht durch das Bild überschrieben.", 4, "#000000", "test", False, False, False)

        testObject.writeBlankLine()
        testObject.writeBlankLine()
        testObject.setImageWithText(testModulPath + "images\4.jpg", 100, 100, "falsche Eingabe", 5, 5)
        testObject.writeText("Wenn keine gueltige Angabe benutzt wird der Text als Default auf der Rechten Seite angezeigt.", 4, "#000000", "test", False, False, False)
        'meinBuch.writeLineBrake()
        testObject.writeText("Der Text wird nicht durch das Bild überschrieben.", 4, "#000000", "test", False, False, False)


        testObject.nextPage()

        ' Sonderzeichen müssen angezeigt werden
        testObject.writeTitle("Sonderzeichen", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier werden Sonderzeichen angezeigt:", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Ausrufezeichen = ! ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Anfürungszeichen = " + Chr(34), 4, "#000000", "test", False, False, False)       ' Achtung, nicht gut getestet
        testObject.writeLineBrake()
        testObject.writeText("Dollerzeichen = $ ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Prozentzeichen = % ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Undzeichen = & ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Klammer = () ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Gleichheitszeichen = =", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Paragrafzeichen = § ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Schrägstrich  = / " + Chr(34), 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Fragezeichen = ? ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Rautezeichen = # ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Hochkomma = ' ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Pluszeichen = + ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Sternzeichen = * ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.writeText("Tilde = ~ ", 4, "#000000", "test", False, False, False)
        testObject.writeLineBrake()
        testObject.nextPage()


        ' Umlaute müssen angezeigt werden
        testObject.writeTitle("Umlaute", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier werden Umlaute angezeigt:", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("ue = ü", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("ae = ä", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("oe = ö", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("ss = ß", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()

        testObject.nextPage()

        ' Fett, Kursiv und Unterstrichen
        testObject.writeTitle("Fett,Unterstrichen und Kursiv", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier werden verschiedene Möglichkeiten probiert", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Fett", 4, "#000000", "test", True, False, False)
        testObject.writeBlankLine()
        testObject.writeText("Unterstrichen", 4, "#000000", "test", False, False, True)
        testObject.writeBlankLine()
        testObject.writeText("Kursiv", 4, "#000000", "test", False, True, False)
        testObject.writeBlankLine()
        testObject.writeText("Fett & Unterstrichen", 4, "#000000", "test", True, False, True)
        testObject.writeBlankLine()
        testObject.writeText("Kursiv & Unterstrichen", 4, "#000000", "test", False, True, True)
        testObject.writeBlankLine()
        testObject.writeText("Fett & Kursiv", 4, "#000000", "test", True, True, False)
        testObject.writeBlankLine()
        testObject.writeText("Fett & Unterstrichen & Kursiv", 4, "#000000", "test", True, True, True)
        testObject.writeBlankLine()

        testObject.nextPage()

        ' Überschriftentest (2 Seiten)
        testObject.writeTitle("Hauptinhaltsverzeichnis", 6, "#000000", "test", False, False, False, 0)
        testObject.writeBlankLine()
        testObject.writeText("Hier werden verschiedene Typen von Inhaltsverzeichnissen getestet", 4, "#000000", "test", False, False, False)

        testObject.nextPage()
        testObject.writeTitle("Erstes Unterinhaltsverzeichnis", 4, "#000000", "test", False, False, False, 1)
        testObject.writeBlankLine()
        testObject.writeText("Die erste Unterueberschrift sollte auf einer neuen Seite sein.", 4, "#000000", "test", False, False, False)
        testObject.writeBlankLine()

        testObject.newTitleatTheSameSide()
        testObject.writeBlankLine()
        testObject.writeTitle("Zweites Unterinhaltsverzeichnis", 4, "#000000", "test", False, False, False, 2)
        testObject.writeBlankLine()
        testObject.writeText("Das zweite Unterinhaltsverzeichnis sollte auf der gleichen Seite wie die erste Unterinhaltsverzeichnis sein.", 4, "#000000", "test", False, False, False)
        testObject.nextPage()

        testObject.nextPage()


        testObject.nextPage()

        testObject.finishBook()

    End Sub

End Module